<?php

namespace app\common\model;

class CoursePaperLearnStats extends Base
{
    // 设置表名
    protected $name = 'course_paper_learn_stats';
    
    // 定义时间戳字段名
    protected $createTime = false; // 没有create_time字段
    protected $updateTime = 'update_time';
    
    /**
     * 获取试卷学习统计信息
     * @param int $paperId 试卷ID
     * @param string $field 需要查询的字段
     * @return CoursePaperLearnStats|array|null
     */
    public function getStatsByPaperId($paperId, $field = '')
    {
        $where = ['paper_id' => $paperId];
        return $this->where($where)->field($field)->find();
    }
    
    /**
     * 获取用户试卷学习统计信息
     * @param int $uid 用户ID
     * @param int $paperId 试卷ID
     * @param string $field 需要查询的字段
     * @return CoursePaperLearnStats|array|null
     */
    public function getUserPaperStats($uid, $paperId, $field = '')
    {
        $where = [
            'uid' => $uid,
            'paper_id' => $paperId
        ];
        return $this->where($where)->field($field)->find();
    }
    
    /**
     * 更新用户试卷学习统计数据
     * @param int $uid 用户ID
     * @param int $paperId 试卷ID
     * @param array $data 更新的数据
     * @return int|string 更新或插入的结果
     */
    public function updateUserPaperStats($uid, $paperId, $data)
    {
        // 查询条件
        $where = [
            'uid' => $uid,
            'paper_id' => $paperId
        ];
        
        // 直接使用value方法获取ID，更简洁高效
        $id = $this->where($where)->value('id');
        
        // 确保数据中包含uid和paper_id
        $data['uid'] = $uid;
        $data['paper_id'] = $paperId;
        
        if ($id) {
            // 使用主键更新，速度更快
            return $this->save_data($data, ['id' => $id]);
        } else {
            // 新增记录
            return $this->add_data($data);
        }
    }
} 